/**
 **************************************************************************************************************************
 * 
 **************************************************************************************************************************
 * @file RBD3D11EffectCompiler.h
 **************************************************************************************************************************/

#pragma once

#ifdef  HEADER_MSG
#pragma HEADER_MSG(RBD3D11EffectCompiler.h)
#endif


/**************************************************************************************************************************
 * Includes
 **************************************************************************************************************************/
#include <RBRenderProcess/RBEffectCompiler.h>

/**************************************************************************************************************************
 * Forward declarations
 **************************************************************************************************************************/
struct ID3DX11Effect;
class RBD3D11Renderer;


/**************************************************************************************************************************
 * Classes
 **************************************************************************************************************************/
class RBD3D11EffectCompiler : public RBEffectCompiler
{
public:
                    RBD3D11EffectCompiler(RBD3D11Renderer* pRenderer);


    virtual bool    CompileNative        (const RBString& text, RBEffect& kEffect, const FXParser::FXDesc& fxDesc);
    virtual bool    PreprocessShaderFile(RBString* pShaderText, const RBString& strFilename);

private:

    RBD3D11Renderer* m_pRenderer;
};
